﻿using System;
namespace Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik {
    
    
    [global::Xtee.Core.Attributes.XmlTypeAttribute(Name="Osaline", Namespace="http://producers.etoimik.xtee.riik.ee/producer/etoimik", Target=typeof(Osaline))]
    public class OsalineSerializer : global::Xtee.Core.Types.AbstractXteeSerializable {
        
        protected IOsaline clazz;
        
        public OsalineSerializer(IOsaline clazz) {
            this.clazz = clazz;
        }
        
        public override void WriteXml(global::Xtee.Core.IXteeXmlWriter Writer) {
            base.WriteXml(Writer);
            if (clazz.ObjektID!=null) {
                Writer.WriteStartElement("ObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AlgusKP!=null) {
                Writer.WriteStartElement("AlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.AlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Alustaja!=null) {
                Writer.WriteStartElement("Alustaja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Alustaja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LoppKP!=null) {
                Writer.WriteStartElement("LoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.LoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Lopetaja!=null) {
                Writer.WriteStartElement("Lopetaja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Lopetaja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Isik!=null) {
                Writer.WriteStartElement("Isik");
                global::Xtee.Core.SerializationMetadata metaIsik = this.GetMetaData(clazz.Isik);
                Writer.WriteTypeAttribute(metaIsik.TypeQualifiedName.Namespace, metaIsik.TypeQualifiedName.Name);
                metaIsik.NewSerializer(clazz.Isik).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Kvalifikatsioon!=null) {
                Writer.WriteStartElement("Kvalifikatsioon");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("KvalifikatsiooniParagrahv", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Kvalifikatsioon.Count);
                for (int x = 0; ((clazz.Kvalifikatsioon != null) 
                            && (x < clazz.Kvalifikatsioon.Count)); x = (x + 1)) {
                    if (clazz.Kvalifikatsioon[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaKvalifikatsioon = this.GetMetaData(clazz.Kvalifikatsioon[x]);
                        Writer.WriteTypeAttribute(metaKvalifikatsioon.TypeQualifiedName.Namespace, metaKvalifikatsioon.TypeQualifiedName.Name);
                        metaKvalifikatsioon.NewSerializer(clazz.Kvalifikatsioon[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.LiikKL!=null) {
                Writer.WriteStartElement("LiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Toimingud!=null) {
                Writer.WriteStartElement("Toimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Toimingud.Count);
                for (int x = 0; ((clazz.Toimingud != null) 
                            && (x < clazz.Toimingud.Count)); x = (x + 1)) {
                    if (clazz.Toimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaToimingud = this.GetMetaData(clazz.Toimingud[x]);
                        Writer.WriteTypeAttribute(metaToimingud.TypeQualifiedName.Namespace, metaToimingud.TypeQualifiedName.Name);
                        metaToimingud.NewSerializer(clazz.Toimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.VarasemKaristatus!=null) {
                Writer.WriteStartElement("VarasemKaristatus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.VarasemKaristatus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Markused!=null) {
                Writer.WriteStartElement("Markused");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Markused))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Objektid!=null) {
                Writer.WriteStartElement("Objektid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Objekt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Objektid.Count);
                for (int x = 0; ((clazz.Objektid != null) 
                            && (x < clazz.Objektid.Count)); x = (x + 1)) {
                    if (clazz.Objektid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaObjektid = this.GetMetaData(clazz.Objektid[x]);
                        Writer.WriteTypeAttribute(metaObjektid.TypeQualifiedName.Namespace, metaObjektid.TypeQualifiedName.Name);
                        metaObjektid.NewSerializer(clazz.Objektid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.ToimikuLkNR!=null) {
                Writer.WriteStartElement("ToimikuLkNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToimikuLkNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VarasemKaristatusKirjeldus!=null) {
                Writer.WriteStartElement("VarasemKaristatusKirjeldus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.VarasemKaristatusKirjeldus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Syydistus!=null) {
                Writer.WriteStartElement("Syydistus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Syydistus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SyydIseloomustab!=null) {
                Writer.WriteStartElement("SyydIseloomustab");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.SyydIseloomustab))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Haigestumine!=null) {
                Writer.WriteStartElement("Haigestumine");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Haigestumine))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Ohtlikkus!=null) {
                Writer.WriteStartElement("Ohtlikkus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Ohtlikkus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VaimneSeisund!=null) {
                Writer.WriteStartElement("VaimneSeisund");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.VaimneSeisund))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SundraviVajadus!=null) {
                Writer.WriteStartElement("SundraviVajadus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.SundraviVajadus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Esindajad!=null) {
                Writer.WriteStartElement("Esindajad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Osaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Esindajad.Count);
                for (int x = 0; ((clazz.Esindajad != null) 
                            && (x < clazz.Esindajad.Count)); x = (x + 1)) {
                    if (clazz.Esindajad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaEsindajad = this.GetMetaData(clazz.Esindajad[x]);
                        Writer.WriteTypeAttribute(metaEsindajad.TypeQualifiedName.Namespace, metaEsindajad.TypeQualifiedName.Name);
                        metaEsindajad.NewSerializer(clazz.Esindajad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Esindatavad!=null) {
                Writer.WriteStartElement("Esindatavad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Osaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Esindatavad.Count);
                for (int x = 0; ((clazz.Esindatavad != null) 
                            && (x < clazz.Esindatavad.Count)); x = (x + 1)) {
                    if (clazz.Esindatavad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaEsindatavad = this.GetMetaData(clazz.Esindatavad[x]);
                        Writer.WriteTypeAttribute(metaEsindatavad.TypeQualifiedName.Namespace, metaEsindatavad.TypeQualifiedName.Name);
                        metaEsindatavad.NewSerializer(clazz.Esindatavad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.PaevaSissetulek!=null) {
                Writer.WriteStartElement("PaevaSissetulek");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "decimal");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDecimal(((decimal)(clazz.PaevaSissetulek))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PaevaSissetulekValuutaKL!=null) {
                Writer.WriteStartElement("PaevaSissetulekValuutaKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.PaevaSissetulekValuutaKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PaevaSissetulekKP!=null) {
                Writer.WriteStartElement("PaevaSissetulekKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.PaevaSissetulekKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OsalistIseloomustavadAndmed!=null) {
                Writer.WriteStartElement("OsalistIseloomustavadAndmed");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.OsalistIseloomustavadAndmed))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SyydistusPunktid!=null) {
                Writer.WriteStartElement("SyydistusPunktid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("SyydistusPunkt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.SyydistusPunktid.Count);
                for (int x = 0; ((clazz.SyydistusPunktid != null) 
                            && (x < clazz.SyydistusPunktid.Count)); x = (x + 1)) {
                    if (clazz.SyydistusPunktid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSyydistusPunktid = this.GetMetaData(clazz.SyydistusPunktid[x]);
                        Writer.WriteTypeAttribute(metaSyydistusPunktid.TypeQualifiedName.Namespace, metaSyydistusPunktid.TypeQualifiedName.Name);
                        metaSyydistusPunktid.NewSerializer(clazz.SyydistusPunktid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.ObjektideLoetelu!=null) {
                Writer.WriteStartElement("ObjektideLoetelu");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ObjektideLoetelu))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Varad!=null) {
                Writer.WriteStartElement("Varad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Objekt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Varad.Count);
                for (int x = 0; ((clazz.Varad != null) 
                            && (x < clazz.Varad.Count)); x = (x + 1)) {
                    if (clazz.Varad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaVarad = this.GetMetaData(clazz.Varad[x]);
                        Writer.WriteTypeAttribute(metaVarad.TypeQualifiedName.Namespace, metaVarad.TypeQualifiedName.Name);
                        metaVarad.NewSerializer(clazz.Varad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.VaradeLoetelu!=null) {
                Writer.WriteStartElement("VaradeLoetelu");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.VaradeLoetelu))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Nouded!=null) {
                Writer.WriteStartElement("Nouded");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Noue", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Nouded.Count);
                for (int x = 0; ((clazz.Nouded != null) 
                            && (x < clazz.Nouded.Count)); x = (x + 1)) {
                    if (clazz.Nouded[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaNouded = this.GetMetaData(clazz.Nouded[x]);
                        Writer.WriteTypeAttribute(metaNouded.TypeQualifiedName.Namespace, metaNouded.TypeQualifiedName.Name);
                        metaNouded.NewSerializer(clazz.Nouded[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Volad!=null) {
                Writer.WriteStartElement("Volad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("OsaNoue", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Volad.Count);
                for (int x = 0; ((clazz.Volad != null) 
                            && (x < clazz.Volad.Count)); x = (x + 1)) {
                    if (clazz.Volad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaVolad = this.GetMetaData(clazz.Volad[x]);
                        Writer.WriteTypeAttribute(metaVolad.TypeQualifiedName.Namespace, metaVolad.TypeQualifiedName.Name);
                        metaVolad.NewSerializer(clazz.Volad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Sanktsioonid!=null) {
                Writer.WriteStartElement("Sanktsioonid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Sanktsioon", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Sanktsioonid.Count);
                for (int x = 0; ((clazz.Sanktsioonid != null) 
                            && (x < clazz.Sanktsioonid.Count)); x = (x + 1)) {
                    if (clazz.Sanktsioonid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSanktsioonid = this.GetMetaData(clazz.Sanktsioonid[x]);
                        Writer.WriteTypeAttribute(metaSanktsioonid.TypeQualifiedName.Namespace, metaSanktsioonid.TypeQualifiedName.Name);
                        metaSanktsioonid.NewSerializer(clazz.Sanktsioonid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Syyteosyndmused!=null) {
                Writer.WriteStartElement("Syyteosyndmused");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Syyteosyndmus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Syyteosyndmused.Count);
                for (int x = 0; ((clazz.Syyteosyndmused != null) 
                            && (x < clazz.Syyteosyndmused.Count)); x = (x + 1)) {
                    if (clazz.Syyteosyndmused[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSyyteosyndmused = this.GetMetaData(clazz.Syyteosyndmused[x]);
                        Writer.WriteTypeAttribute(metaSyyteosyndmused.TypeQualifiedName.Namespace, metaSyyteosyndmused.TypeQualifiedName.Name);
                        metaSyyteosyndmused.NewSerializer(clazz.Syyteosyndmused[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.VersID!=null) {
                Writer.WriteStartElement("VersID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.VersID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Leppenimi!=null) {
                Writer.WriteStartElement("Leppenimi");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Leppenimi))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SyydToendavadToimingud!=null) {
                Writer.WriteStartElement("SyydToendavadToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.SyydToendavadToimingud.Count);
                for (int x = 0; ((clazz.SyydToendavadToimingud != null) 
                            && (x < clazz.SyydToendavadToimingud.Count)); x = (x + 1)) {
                    if (clazz.SyydToendavadToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSyydToendavadToimingud = this.GetMetaData(clazz.SyydToendavadToimingud[x]);
                        Writer.WriteTypeAttribute(metaSyydToendavadToimingud.TypeQualifiedName.Namespace, metaSyydToendavadToimingud.TypeQualifiedName.Name);
                        metaSyydToendavadToimingud.NewSerializer(clazz.SyydToendavadToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.SyydToendavateToiminguteLoetelu!=null) {
                Writer.WriteStartElement("SyydToendavateToiminguteLoetelu");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.SyydToendavateToiminguteLoetelu))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.IsikuEritunnusteKirjeldus!=null) {
                Writer.WriteStartElement("IsikuEritunnusteKirjeldus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.IsikuEritunnusteKirjeldus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SeotudAsjad!=null) {
                Writer.WriteStartElement("SeotudAsjad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Menetlus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.SeotudAsjad.Count);
                for (int x = 0; ((clazz.SeotudAsjad != null) 
                            && (x < clazz.SeotudAsjad.Count)); x = (x + 1)) {
                    if (clazz.SeotudAsjad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSeotudAsjad = this.GetMetaData(clazz.SeotudAsjad[x]);
                        Writer.WriteTypeAttribute(metaSeotudAsjad.TypeQualifiedName.Namespace, metaSeotudAsjad.TypeQualifiedName.Name);
                        metaSeotudAsjad.NewSerializer(clazz.SeotudAsjad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.SalastatuseTaseKL!=null) {
                Writer.WriteStartElement("SalastatuseTaseKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SalastatuseTaseKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.RikutudOigusnorm!=null) {
                Writer.WriteStartElement("RikutudOigusnorm");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("KvalifikatsiooniParagrahv", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.RikutudOigusnorm.Count);
                for (int x = 0; ((clazz.RikutudOigusnorm != null) 
                            && (x < clazz.RikutudOigusnorm.Count)); x = (x + 1)) {
                    if (clazz.RikutudOigusnorm[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaRikutudOigusnorm = this.GetMetaData(clazz.RikutudOigusnorm[x]);
                        Writer.WriteTypeAttribute(metaRikutudOigusnorm.TypeQualifiedName.Namespace, metaRikutudOigusnorm.TypeQualifiedName.Name);
                        metaRikutudOigusnorm.NewSerializer(clazz.RikutudOigusnorm[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.VerAlgusKP!=null) {
                Writer.WriteStartElement("VerAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.VerAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VerLoppKP!=null) {
                Writer.WriteStartElement("VerLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.VerLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KoostamiseKP!=null) {
                Writer.WriteStartElement("KoostamiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.KoostamiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SisestamiseKP!=null) {
                Writer.WriteStartElement("SisestamiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SisestamiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Sisestaja!=null) {
                Writer.WriteStartElement("Sisestaja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Sisestaja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MuutmiseKP!=null) {
                Writer.WriteStartElement("MuutmiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.MuutmiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Muutja!=null) {
                Writer.WriteStartElement("Muutja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Muutja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SulgemiseKP!=null) {
                Writer.WriteStartElement("SulgemiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SulgemiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.IsikCSV!=null) {
                Writer.WriteStartElement("IsikCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.IsikCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KvalifikatsioonCSV!=null) {
                Writer.WriteStartElement("KvalifikatsioonCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.KvalifikatsioonCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.RikutudOigusnormCSV!=null) {
                Writer.WriteStartElement("RikutudOigusnormCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.RikutudOigusnormCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KlientsysteemiID!=null) {
                Writer.WriteStartElement("KlientsysteemiID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.KlientsysteemiID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Hoiatused!=null) {
                Writer.WriteStartElement("Hoiatused");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ETHoiatus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Hoiatused.Count);
                for (int x = 0; ((clazz.Hoiatused != null) 
                            && (x < clazz.Hoiatused.Count)); x = (x + 1)) {
                    if (clazz.Hoiatused[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaHoiatused = this.GetMetaData(clazz.Hoiatused[x]);
                        Writer.WriteTypeAttribute(metaHoiatused.TypeQualifiedName.Namespace, metaHoiatused.TypeQualifiedName.Name);
                        metaHoiatused.NewSerializer(clazz.Hoiatused[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.LiikAsjasKL!=null) {
                Writer.WriteStartElement("LiikAsjasKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LiikAsjasKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VastutatavadKohustised!=null) {
                Writer.WriteStartElement("VastutatavadKohustised");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Kohustis", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.VastutatavadKohustised.Count);
                for (int x = 0; ((clazz.VastutatavadKohustised != null) 
                            && (x < clazz.VastutatavadKohustised.Count)); x = (x + 1)) {
                    if (clazz.VastutatavadKohustised[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaVastutatavadKohustised = this.GetMetaData(clazz.VastutatavadKohustised[x]);
                        Writer.WriteTypeAttribute(metaVastutatavadKohustised.TypeQualifiedName.Namespace, metaVastutatavadKohustised.TypeQualifiedName.Name);
                        metaVastutatavadKohustised.NewSerializer(clazz.VastutatavadKohustised[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.PoleMenetlussePuutuv!=null) {
                Writer.WriteStartElement("PoleMenetlussePuutuv");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.PoleMenetlussePuutuv))).ToString());
                Writer.WriteEndElement();
            }
        }
        
        public override void ReadXml(global::Xtee.Core.IXteeXmlReader Reader) {
            base.ReadXml(Reader);
            if (Reader.LocalName=="ObjektID") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>Osaline>ObjektID");
                }
                clazz.ObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ObjektID")).Value;
            }
            if (Reader.LocalName=="AlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("AlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Alustaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Alustaja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Alustaja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("LoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Lopetaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Lopetaja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Lopetaja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Isik") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaIsik = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IIsik>(Reader, "Isik", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.Isik = metaIsik.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IIsik>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Isik");
                        metaIsik.NewSerializer(clazz.Isik).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Kvalifikatsioon") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Kvalifikatsioon = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKvalifikatsiooniParagrahv>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Kvalifikatsioon");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaKvalifikatsioon = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKvalifikatsiooniParagrahv>(Reader, "KvalifikatsiooniParagrahv", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKvalifikatsiooniParagrahv item = metaKvalifikatsioon.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKvalifikatsiooniParagrahv>();
                                clazz.Kvalifikatsioon.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaKvalifikatsioon.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Kvalifikatsioon.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Toimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Toimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Toimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming item = metaToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                                clazz.Toimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Toimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VarasemKaristatus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VarasemKaristatus = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("VarasemKaristatus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Markused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Markused = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Markused")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Objektid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Objektid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Objektid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaObjektid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt>(Reader, "Objekt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt item = metaObjektid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt>();
                                clazz.Objektid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaObjektid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Objektid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToimikuLkNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToimikuLkNR = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToimikuLkNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VarasemKaristatusKirjeldus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VarasemKaristatusKirjeldus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("VarasemKaristatusKirjeldus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Syydistus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Syydistus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Syydistus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SyydIseloomustab") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SyydIseloomustab = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("SyydIseloomustab")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Haigestumine") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Haigestumine = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Haigestumine")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Ohtlikkus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Ohtlikkus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Ohtlikkus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VaimneSeisund") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VaimneSeisund = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("VaimneSeisund")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SundraviVajadus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SundraviVajadus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("SundraviVajadus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Esindajad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Esindajad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Esindajad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaEsindajad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>(Reader, "Osaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline item = metaEsindajad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>();
                                clazz.Esindajad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaEsindajad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Esindajad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Esindatavad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Esindatavad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Esindatavad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaEsindatavad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>(Reader, "Osaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline item = metaEsindatavad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaline>();
                                clazz.Esindatavad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaEsindatavad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Esindatavad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PaevaSissetulek") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PaevaSissetulek = new global::Xtee.Core.Schema.XsdDecimal(Reader.ReadElementString("PaevaSissetulek")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PaevaSissetulekValuutaKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PaevaSissetulekValuutaKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("PaevaSissetulekValuutaKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PaevaSissetulekKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PaevaSissetulekKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("PaevaSissetulekKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="OsalistIseloomustavadAndmed") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.OsalistIseloomustavadAndmed = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("OsalistIseloomustavadAndmed")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SyydistusPunktid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SyydistusPunktid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyydistusPunkt>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("SyydistusPunktid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSyydistusPunktid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyydistusPunkt>(Reader, "SyydistusPunkt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyydistusPunkt item = metaSyydistusPunktid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyydistusPunkt>();
                                clazz.SyydistusPunktid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSyydistusPunktid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.SyydistusPunktid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ObjektideLoetelu") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ObjektideLoetelu = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ObjektideLoetelu")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Varad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Varad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Varad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaVarad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt>(Reader, "Objekt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt item = metaVarad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt>();
                                clazz.Varad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaVarad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Varad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VaradeLoetelu") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VaradeLoetelu = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("VaradeLoetelu")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Nouded") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Nouded = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.INoue>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Nouded");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaNouded = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.INoue>(Reader, "Noue", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.INoue item = metaNouded.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.INoue>();
                                clazz.Nouded.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaNouded.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Nouded.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Volad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Volad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaNoue>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Volad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaVolad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaNoue>(Reader, "OsaNoue", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaNoue item = metaVolad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOsaNoue>();
                                clazz.Volad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaVolad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Volad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Sanktsioonid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Sanktsioonid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISanktsioon>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Sanktsioonid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSanktsioonid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISanktsioon>(Reader, "Sanktsioon", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISanktsioon item = metaSanktsioonid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISanktsioon>();
                                clazz.Sanktsioonid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSanktsioonid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Sanktsioonid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Syyteosyndmused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Syyteosyndmused = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Syyteosyndmused");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSyyteosyndmused = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus>(Reader, "Syyteosyndmus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus item = metaSyyteosyndmused.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus>();
                                clazz.Syyteosyndmused.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSyyteosyndmused.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Syyteosyndmused.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VersID") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>Osaline>VersID");
                }
                clazz.VersID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("VersID")).Value;
            }
            if (Reader.LocalName=="Leppenimi") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Leppenimi = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Leppenimi")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SyydToendavadToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SyydToendavadToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("SyydToendavadToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSyydToendavadToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming item = metaSyydToendavadToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                                clazz.SyydToendavadToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSyydToendavadToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.SyydToendavadToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SyydToendavateToiminguteLoetelu") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SyydToendavateToiminguteLoetelu = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("SyydToendavateToiminguteLoetelu")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="IsikuEritunnusteKirjeldus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.IsikuEritunnusteKirjeldus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("IsikuEritunnusteKirjeldus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeotudAsjad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeotudAsjad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("SeotudAsjad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSeotudAsjad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus>(Reader, "Menetlus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus item = metaSeotudAsjad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus>();
                                clazz.SeotudAsjad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSeotudAsjad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.SeotudAsjad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SalastatuseTaseKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SalastatuseTaseKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SalastatuseTaseKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RikutudOigusnorm") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RikutudOigusnorm = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKvalifikatsiooniParagrahv>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("RikutudOigusnorm");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaRikutudOigusnorm = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKvalifikatsiooniParagrahv>(Reader, "KvalifikatsiooniParagrahv", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKvalifikatsiooniParagrahv item = metaRikutudOigusnorm.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKvalifikatsiooniParagrahv>();
                                clazz.RikutudOigusnorm.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaRikutudOigusnorm.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.RikutudOigusnorm.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VerAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VerAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("VerAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VerLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VerLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("VerLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KoostamiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KoostamiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("KoostamiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SisestamiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SisestamiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SisestamiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Sisestaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Sisestaja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Sisestaja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MuutmiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MuutmiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("MuutmiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Muutja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Muutja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Muutja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SulgemiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SulgemiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SulgemiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="IsikCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.IsikCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("IsikCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KvalifikatsioonCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KvalifikatsioonCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("KvalifikatsioonCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RikutudOigusnormCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RikutudOigusnormCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("RikutudOigusnormCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KlientsysteemiID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KlientsysteemiID = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("KlientsysteemiID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Hoiatused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Hoiatused = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Hoiatused");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaHoiatused = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus>(Reader, "ETHoiatus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus item = metaHoiatused.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus>();
                                clazz.Hoiatused.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaHoiatused.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Hoiatused.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LiikAsjasKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LiikAsjasKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LiikAsjasKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VastutatavadKohustised") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VastutatavadKohustised = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("VastutatavadKohustised");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaVastutatavadKohustised = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis>(Reader, "Kohustis", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis item = metaVastutatavadKohustised.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis>();
                                clazz.VastutatavadKohustised.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaVastutatavadKohustised.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.VastutatavadKohustised.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PoleMenetlussePuutuv") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PoleMenetlussePuutuv = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("PoleMenetlussePuutuv")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
        }
    }
}
